1. Field of the Invention
The present invention relates generally to a system and method for capturing and restoring session information for a computer system via a metadata based structured state capture file that stores state information of a session.
2. Description of the Related Art
Many commercial businesses and enterprises make extensive use of personal computers (PCs) in their daily operations. Typically, each user of a PC in the enterprise has a networked PC at his/her desk or work area. As the number of networked computer systems utilized in an enterprise increases, the management of resources in the network may become increasingly complex and expensive. Some of the manageability issues involved in maintaining a large number of networked computer systems may include ease of installation and deployment, the topology and physical logistics of the network, asset management, scalability (the cost and effort involved in increasing the number of units), troubleshooting network or unit problems, support costs, software tracking and management, as well as the simple issue of physical space, be it floor space or room on the desktop, as well as security issues regarding physical assets, information protection, software control, and computer virus issues.
Many of these issues may be addressed by centralizing the locations of computing resources. For example, each individual user may connect through a network to a server computer system and use computing resources provided by the server computer system.
Some server computer systems are capable of leveraging the physical hardware resources available through virtualization. Virtualization provides the ability for multiple virtual machines to run together on the same physical server computer. For example, each virtual machine may execute its own operating system and may appear to a user of the virtual machine to be the same as an independent physical computer. The software layer that executes on the physical server computer and manages the various virtual machines is called a hypervisor or virtual machine host software. The hypervisor can run on bare hardware (called a Type 1 or native VM) or under control of an operating system (called a Type 2 or hosted VM).
Traditional means of taking a memory snapshot of a session state on a physical or virtual machine generally involves such actions as using a memory dump, register status and similar CPU/memory state information to instantly recreate the same state at a later date on a similar or the same system. It is important to note that such re-creation involves a “blind” replication of all elements of state, i.e. there is no differentiation between the states in which individual applications were running. When state is restored, it is restored for all apps that were running in the original session. More generally, this prior art technique involves a “wholesale” recreation of state; in other words, if N steps were taken to bring the execution state to a specified point, this method of state capture is only concerned with the Nth state, and is specifically not concerned with the N-1, N-2, etc., states, i.e., all the previous steps that were necessary to evolve the session state to its Nth state. This approach thus severely limits the control and subtlety allowed in the capture and (re)establishment or restoration of VM state.